#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 初始化列表中的值
    // 可以直接通过字符串添加
    ui->listWidget->addItem("C++");
    ui->listWidget->addItem("Python");
    ui->listWidget->addItem("Java");
    // 也可以通过 QListWidgetItem 添加
    // ui->listWidget->addItem(new QListWidgetItem("Java"));
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    // 在输入框中输入后，添加元素到列表中
    // 首先获取输入框中的元素
    const QString& item = ui->lineEdit->text();
    if(item.isEmpty()) return;
    // 这里默认是插入到列表尾部的
    ui->listWidget->addItem(item);
    // 如果想插入到指定位置，就要使用 insertItem：
    // ui->listWidget->insertItem(2, item);
}

void Widget::on_pushButton_2_clicked()
{
    // 删除鼠标选中的列表元素
    // 首先获取鼠标选中的行号
    int row = ui->listWidget->currentRow();
    if(row < 0) return;
    ui->listWidget->takeItem(row);
}

void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
    // 通过这个感知选中状态的变化
    if(current != nullptr) qDebug() << "当前选中的位置：" << current->text();
    if(previous != nullptr) qDebug() << "之前选中的位置：" << previous->text();
}
